import java.util.Arrays;

/**
 * @author 03010570
 * @date 2020/07/06
 * describe:    LeetCode : 62、不同路径  https://leetcode-cn.com/problems/unique-paths/
 */
public class LeetCode_62 {

    public static void main(String[] args) {
        System.out.println(uniquePaths2(3,3));
        System.out.println(uniquePaths(7,3));
    }


    public static int uniquePaths2(int m, int n) {
        int[] cur = new int[n];
        Arrays.fill(cur,1);
        for (int i = 1; i < m;i++){
            for (int j = 1; j < n; j++){
                cur[j] += cur[j-1] ;
            }
        }
        return cur[n-1];
    }


        public static int uniquePaths(int m, int n) {
        int[][] dp = new int[m][n];
        for(int i = 0;i < m;i++){
            dp[i][0] = 1;
        }
        for(int j = 0;j <n ;j++){
            dp[0][j] = 1;
        }
        for(int i =1;i<m;i++){
            for(int j =1;j<n;j++){
                dp[i][j] = dp[i][j-1] + dp[i-1][j];
            }
        }
        return dp[m-1][n-1];
    }
}
